home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / OpenDoc Parts Framework / OPF / Found / FWExcLib / Include / FWSExcep.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-21  |  2.1 KB  |  77 lines  |  [TEXT/MPS ]

  1. #if !defined(FWSEXCEP_H)
  2. #define FWSEXCEP_H
  3. //========================================================================================
  4. //
  5. //    File:                FWSExcep.h
  6. //    Release Version:    $ 1.0d1 $
  7. //
  8. //    Creation Date:        3/28/94
  9. //
  10. //    Copyright:    © 1994 by Apple Computer, Inc., all rights reserved.
  11. //
  12. //========================================================================================
  13.  
  14. #include <stddef.h>
  15.  
  16. #ifndef   FWCLAINF_H
  17. #include "FWClaInf.h"
  18. #endif
  19.  
  20. //========================================================================================
  21. //    Forward Declarations
  22. //========================================================================================
  23.  
  24. class _FW_CException;
  25. class _FW_CTryBlockContext;
  26. class _FW_CPrivNewHelper;
  27. class _FW_CPrivSubHelper;
  28. class _FW_CDeleteEntry;
  29.  
  30. typedef unsigned short int _FW_StackEntries;
  31.  
  32. typedef void (*PFV) ();
  33.  
  34. typedef void* (*__FW_OperatorNewHandler)(size_t size);
  35. typedef void  (*__FW_OperatorDeleteHandler)(void* p);
  36.  
  37. //========================================================================================
  38. //    STRUCT FW_SPrivExceptionGlobals
  39. //
  40. //        Globals for exception handling system.
  41. //        Only one instance of this struct will be instantiated per task.
  42. //
  43. //========================================================================================
  44.  
  45. struct FW_SPrivExceptionGlobals
  46. {
  47.     _FW_CTryBlockContext*        gBaseContext;
  48.     _FW_CTryBlockContext*        gCurrentContext;
  49.     short                         gContextDepth;
  50.  
  51.     _FW_StackEntries            gCurrentStackSize;
  52.     _FW_CDeleteEntry*            gStackBase;
  53.     _FW_CDeleteEntry*            gStackTop;
  54.     _FW_CDeleteEntry*            gStackLimit;
  55.  
  56.     long                        gExceptionBufferSize;
  57.     void*                        gExceptionBuffer;
  58.     _FW_CException*                gCaughtException;
  59.     _FW_CException*                gThrownException;
  60.     short                        gIsThrowing;
  61.     
  62.     PFV                            gCurrentTerminate;
  63.     PFV                            gCurrentUnexpected;
  64.     
  65.     FW_ClassReference             gBreakExceptionKind;
  66.     
  67.     _FW_CPrivNewHelper**            gNewHelperStackBottom;
  68.     _FW_CPrivNewHelper**            gNewHelperStackTop;
  69.     _FW_CPrivSubHelper*            gSubHelperStorageArray;
  70.     _FW_CPrivSubHelper*            gSubHelperFreeListHead;
  71.     
  72.     __FW_OperatorNewHandler        gOperatorNewHandler;
  73.     __FW_OperatorDeleteHandler    gOperatorDeleteHandler;
  74. };
  75.  
  76. #endif
  77.